package com.information.util;

import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.time.LocalDateTime;
import java.time.format.DateTimeFormatter;
import java.util.Date;

public class DateUtil {

	private static DateTimeFormatter format = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
	
	private static DateTimeFormatter format2 = DateTimeFormatter.ofPattern("yyyyMMdd-HHmmss");

	private static DateTimeFormatter format3 = DateTimeFormatter.ofPattern("yyyyMMdd");

	private static DateTimeFormatter formatDay = DateTimeFormatter.ofPattern("yyyy-MM-dd");

	private static SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");

	/**
	 * 获取格式化日期
	 * 
	 * @author edeye
	 * @modifier edeye
	 * @param param
	 *            格式为yyyy-MM-dd HH:mm:ss的日期
	 * @return java.util.Date对象,如果param格式不正确将返回空
	 */
	public static Date defaultFormatToDate(String param) {
		try {
			return sdf.parse(param);
		} catch (ParseException e) {
			e.printStackTrace();
		}
		return null;
	}

	/**
	 * 获取格式化日期
	 * 
	 * @author edeye
	 * @modifier edeye
	 * @param format
	 *            格式化字符串
	 * @return 格式化后的日期字符串
	 */
	public static String getFormatCurrentDateTime(String format) {
		return LocalDateTime.now().format(DateTimeFormatter.ofPattern(format));
	}

	public static Date getDate2Str(String dateStr) {
		SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
		Date date = null;
		try {
			date = sdf.parse(dateStr);
		} catch (ParseException e) {
			e.printStackTrace();
		}
		return date;
	}

	/**
	 * 获取格式化日期
	 * 
	 * @author edeye
	 * @modifier edeye
	 * @return 格式为yyyy-MM-dd HH:mm:ss的日期
	 */
	public static String getDefaultCurrentDateTime() {
		return LocalDateTime.now().format(format);
	}

	/**
	 * 获取格式化日期
	 * 
	 * @author edeye
	 * @modifier edeye
	 * @return 格式为yyyyMMdd-HHmmss的日期
	 */
	public static String getFileSuffixCurrentDateTime() {
		return LocalDateTime.now().format(format2);
	}
	
	/**
	 * 获取格式化日期
	 * 
	 * @author edeye
	 * @modifier edeye
	 * @return 格式为yyyyMMdd的日期
	 */
	public static String getFileSuffixCurrentDateTimeNoSpace() {
		return LocalDateTime.now().format(format3);
	}
	/**
	 * 获取当前日期
	 * 
	 * @author Mandarava
	 * @return
	 */
	public static Date newDate() {
		return new Date();
	}

	/**
	 * 获取格式化日期
	 * 
	 * @author edeye
	 * @modifier edeye
	 * @return 格式为yyyy-MM-dd的日期
	 */
	public static String getDefaultCurrentDate() {
		return LocalDateTime.now().format(formatDay);
	}

	public static void main(String[] args) {
		System.out.println(DateUtil.getDefaultCurrentDateTime());
	}
}
